#ifndef PLUGINSMANAGER_H
#define PLUGINSMANAGER_H

#include <QObject>
#include <QPluginLoader>


class PluginsManager : public QObject
{
    Q_OBJECT
public:
	//for future
	enum PluginType{
		Database
	};

	struct PluginsListEntry{
		QString fileName;
		bool isLoaded;
		//PLUGININFO info;
		QString title;
	};

private:
	class PluginEntry;
	class PluginsManagerPrivate;
	PluginsManagerPrivate *d;
public:
    explicit PluginsManager(QObject *parent = 0);
	~PluginsManager();

	QObject* loadPlugin(const QString &fileName);
	bool unloadPlugin(const QString &fileName);

	QList<PluginsManager::PluginsListEntry> pluginsList() const;

signals:

public slots:

};

#endif // PLUGINSMANAGER_H
